class Vue{
	constructor(options) {
	    this.$options = options || {}
		this.$data = options.data || {}
		this.$el = typeof options.el ==='string' ? document.querySelector(options.el) : options.el
		this._proxData(this.$data)
		new observer(this.$data)
		new compiler(this)
	}
	_proxData(data){
		Object.keys(data).forEach(key=>{
			Object.defineProperty(this,key,{
				emunerable:true,
				configurable:true,
				get(){
					return data[key]
				},
				set(newValue){
					if(newValue === data[key]){
						return
					}
					data[key] = newValue
				}
			})
		})
	}
}